<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">

<html><head><title>ACS_Converters - NewAC</title><link rel="stylesheet" type="text/css" href="../../styles/main.css"><script language=JavaScript src="../../javascript/main.js"></script><script language=JavaScript src="../../javascript/searchdata.js"></script></head><body class="ContentPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>

<!--  Generated by Natural Docs, version 1.4 -->
<!--  http://www.naturaldocs.org  -->

<!-- saved from url=(0026)http://www.naturaldocs.org -->




<div id=Content><div class="CSection"><div class=CTopic id=MainTopic><h1 class=CTitle><a name="ACS_Converters"></a>ACS_Converters</h1><div class=CBody><p>Classes which convert bit depth, sample rates, and stereo/mono.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SMain"><td class=SEntry><a href="#ACS_Converters" >ACS_Converters</a></td><td class=SDescription>Classes which convert bit depth, sample rates, and stereo/mono.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#Enumerations" >Enumerations</a></td><td class=SDescription></td></tr><tr class="SEnumeration SIndent2 SMarked"><td class=SEntry><a href="#TNormalizerStoreMode" >TNormalizerStoreMode</a></td><td class=SDescription>Used by TNormalizer to differentiate between three different methods to store intermediate data.</td></tr><tr class="SClass"><td class=SEntry><a href="#TNormalizer" >TNormalizer</a></td><td class=SDescription>A descendent of <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link1 onMouseOver="ShowTip(event, 'tt1', 'link1')" onMouseOut="HideTip('tt1')">TAuConverter</a> which scales audio data such that the highest peak in the data is mapped to the maximum sample value available.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TNormalizer.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TNormalizer.StoreMode" >StoreMode</a></td><td class=SDescription>TNormalizer needs a preprocessing data stage, depending on the StoreMode value the component can work in several modes: <a href="#nsmFile" class=LConstant id=link2 onMouseOver="ShowTip(event, 'tt2', 'link2')" onMouseOut="HideTip('tt2')">nsmFile</a>, <a href="#nsmMemory" class=LConstant id=link3 onMouseOver="ShowTip(event, 'tt3', 'link3')" onMouseOut="HideTip('tt3')">nsmMemory</a>, or <a href="#nsmNone" class=LConstant id=link4 onMouseOver="ShowTip(event, 'tt4', 'link4')" onMouseOut="HideTip('tt4')">nsmNone</a>. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TNormalizer.TmpFileName" >TmpFileName</a></td><td class=SDescription>The name of the temporary file that stores intermediate data in the <a href="#nsmFile" class=LConstant id=link5 onMouseOver="ShowTip(event, 'tt2', 'link5')" onMouseOut="HideTip('tt2')">nsmFile</a> mode.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TNormalizer.Enabled" >Enabled</a></td><td class=SDescription>If this property is set to False the component passes data through without scaling.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TNormalizer.Enumerations" >Enumerations</a></td><td class=SDescription></td></tr><tr class="SEnumeration SIndent2 SMarked"><td class=SEntry><a href="#TNormalizer.TDitheringAlgorithm" >TDitheringAlgorithm</a></td><td class=SDescription>Select between several dithering algorithms.</td></tr><tr class="SClass"><td class=SEntry><a href="#TDitherer" >TDitherer</a></td><td class=SDescription>A descendent of <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link6 onMouseOver="ShowTip(event, 'tt1', 'link6')" onMouseOut="HideTip('tt1')">TAuConverter</a> which converter adds dithering noise to the audio data passing through it. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TDitherer.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TDitherer.DitheringDepth" >DitheringDepth</a></td><td class=SDescription>Use this property to set the number of bits that will contain the dithering noise. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TDitherer.DitheringAlgorithm" >DitheringAlgorithm</a></td><td class=SDescription>Use this property to set the dithering algorithm. </td></tr><tr class="SClass"><td class=SEntry><a href="#TFastResampler" >TFastResampler</a></td><td class=SDescription>This resampler combines fast resampling speed and good quality. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TFastResampler.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TFastResampler.OutSampleRate" >OutSampleRate</a></td><td class=SDescription>Use this property to set the resampler&rsquo;s output sample rate.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAudioConverter" >TAudioConverter</a></td><td class=SDescription>A descendent of <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link7 onMouseOver="ShowTip(event, 'tt1', 'link7')" onMouseOut="HideTip('tt1')">TAuConverter</a> which may be used for changing the number of channels and number of bits per sample in an audio stream.</td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TAudioConverter.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAudioConverter.Mode" >Mode</a></td><td class=SDescription>Mode property affects the way the mono stream is converted into stereo. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TAudioConverter.OutBitsPerSample" >OutBitsPerSample</a></td><td class=SDescription>Use this property to set the number of bits per sample in the resulting audio stream. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TAudioConverter.OutChannels" >OutChannels</a></td><td class=SDescription>Use this property to set the number of channels in the resulting audio stream. </td></tr><tr class="SClass"><td class=SEntry><a href="#TACMConverter" >TACMConverter</a></td><td class=SDescription>Descends from <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link8 onMouseOver="ShowTip(event, 'tt1', 'link8')" onMouseOut="HideTip('tt1')">TAuConverter</a>, an ACM-based converter. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TACMConverter.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TACMConverter.OutBitsPerSample" >OutBitsPerSample</a></td><td class=SDescription>Use this property to set the number of bits per sample in the resulting audio stream. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TACMConverter.OutChannels" >OutChannels</a></td><td class=SDescription>Use this property to set the number of channels in the resulting audio stream. </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TACMConverter.OutSampleRate" >OutSampleRate</a></td><td class=SDescription>Use this property to set thesample rate of the resulting audio stream. </td></tr><tr class="SClass"><td class=SEntry><a href="#TDownMixer" >TDownMixer</a></td><td class=SDescription>TDownMixer converts multi-channel (currently only 5.1) audio to stereo. </td></tr><tr class="SGroup SIndent1"><td class=SEntry><a href="#TDownMixer.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TDownMixer.CentralGain" >CentralGain</a></td><td class=SDescription>CentralGain value (see the formulae above) reasonable values range from 0.5 to 0.7. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TDownMixer.RearGain" >RearGain</a></td><td class=SDescription>RearGain value (see the formulae above). </td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TDownMixer.TotalGain" >TotalGain</a></td><td class=SDescription>The total output gain value. </td></tr><tr class="SProperty SIndent2"><td class=SEntry><a href="#TDownMixer.JoinRear" >JoinRear</a></td><td class=SDescription>When set to True the component tries to emulate Dolby Surround Stereo.</td></tr><tr class="SProperty SIndent2 SMarked"><td class=SEntry><a href="#TDownMixer.OnClipping" >OnClipping</a></td><td class=SDescription>OnCliping event is raised whenever clipping occurs.</td></tr><tr class="SClass"><td class=SEntry><a href="#TAudioCache" >TAudioCache</a></td><td class=SDescription>TAudioCache is a converter component that caches what it gets on input to provide the smooth output. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="Enumerations"></a>Enumerations</h3></div></div>

<div class="CEnumeration"><div class=CTopic><h3 class=CTitle><a name="TNormalizerStoreMode"></a>TNormalizerStoreMode</h3><div class=CBody><p>Used by TNormalizer to differentiate between three different methods to store intermediate data.</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry><a name="nsmFile"></a>nsmFile</td><td class=CDLDescription>the intermediate data is stored in a disc file (see the &lt;TmpFileName&gt; property).</td></tr><tr><td class=CDLEntry><a name="nsmMemory"></a>nsmMemory</td><td class=CDLDescription>the intermediate data is stored in RAM.</td></tr><tr><td class=CDLEntry><a name="nsmNone"></a>nsmNone</td><td class=CDLDescription>no intermediate data is stored.&nbsp; In this mode the component reads the data from its input twice.&nbsp; This mode works only for inputs which can reproduce their data (<a href="ACS_Classes-pas.html#TAuStreamedInput" class=LClass id=link9 onMouseOver="ShowTip(event, 'tt5', 'link9')" onMouseOut="HideTip('tt5')">TAuStreamedInput</a> descendants).</td></tr></table></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TNormalizer"></a>TNormalizer</h2><div class=CBody><p>A descendent of <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link14 onMouseOver="ShowTip(event, 'tt1', 'link14')" onMouseOut="HideTip('tt1')">TAuConverter</a> which scales audio data such that the highest peak in the data is mapped to the maximum sample value available.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TNormalizer.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TNormalizer.StoreMode" >StoreMode</a></td><td class=SDescription>TNormalizer needs a preprocessing data stage, depending on the StoreMode value the component can work in several modes: <a href="#nsmFile" class=LConstant id=link10 onMouseOver="ShowTip(event, 'tt2', 'link10')" onMouseOut="HideTip('tt2')">nsmFile</a>, <a href="#nsmMemory" class=LConstant id=link11 onMouseOver="ShowTip(event, 'tt3', 'link11')" onMouseOut="HideTip('tt3')">nsmMemory</a>, or <a href="#nsmNone" class=LConstant id=link12 onMouseOver="ShowTip(event, 'tt4', 'link12')" onMouseOut="HideTip('tt4')">nsmNone</a>. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TNormalizer.TmpFileName" >TmpFileName</a></td><td class=SDescription>The name of the temporary file that stores intermediate data in the <a href="#nsmFile" class=LConstant id=link13 onMouseOver="ShowTip(event, 'tt2', 'link13')" onMouseOut="HideTip('tt2')">nsmFile</a> mode.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TNormalizer.Enabled" >Enabled</a></td><td class=SDescription>If this property is set to False the component passes data through without scaling.</td></tr><tr class="SGroup"><td class=SEntry><a href="#TNormalizer.Enumerations" >Enumerations</a></td><td class=SDescription></td></tr><tr class="SEnumeration SIndent1 SMarked"><td class=SEntry><a href="#TNormalizer.TDitheringAlgorithm" >TDitheringAlgorithm</a></td><td class=SDescription>Select between several dithering algorithms.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TNormalizer.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TNormalizer.StoreMode"></a>StoreMode</h3><div class=CBody><p>TNormalizer needs a preprocessing data stage, depending on the StoreMode value the component can work in several modes: <a href="#nsmFile" class=LConstant id=link15 onMouseOver="ShowTip(event, 'tt2', 'link15')" onMouseOut="HideTip('tt2')">nsmFile</a>, <a href="#nsmMemory" class=LConstant id=link16 onMouseOver="ShowTip(event, 'tt3', 'link16')" onMouseOut="HideTip('tt3')">nsmMemory</a>, or <a href="#nsmNone" class=LConstant id=link17 onMouseOver="ShowTip(event, 'tt4', 'link17')" onMouseOut="HideTip('tt4')">nsmNone</a>.&nbsp; See <a href="#TNormalizerStoreMode" class=LType id=link18 onMouseOver="ShowTip(event, 'tt6', 'link18')" onMouseOut="HideTip('tt6')">TNormalizerStoreMode</a> for more.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TNormalizer.TmpFileName"></a>TmpFileName</h3><div class=CBody><p>The name of the temporary file that stores intermediate data in the <a href="#nsmFile" class=LConstant id=link19 onMouseOver="ShowTip(event, 'tt2', 'link19')" onMouseOut="HideTip('tt2')">nsmFile</a> mode.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TNormalizer.Enabled"></a>Enabled</h3><div class=CBody><p>If this property is set to False the component passes data through without scaling.</p></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TNormalizer.Enumerations"></a>Enumerations</h3></div></div>

<div class="CEnumeration"><div class=CTopic><h3 class=CTitle><a name="TNormalizer.TDitheringAlgorithm"></a>TDitheringAlgorithm</h3><div class=CBody><p>Select between several dithering algorithms.</p><table border=0 cellspacing=0 cellpadding=0 class=CDescriptionList><tr><td class=CDLEntry><a name="dtaRectangular"></a>dtaRectangular</td><td class=CDLDescription>Rectangle noise</td></tr><tr><td class=CDLEntry><a name="dtaTriangular"></a>dtaTriangular</td><td class=CDLDescription>Triangle noise</td></tr><tr><td class=CDLEntry><a name="dtaShaped1"></a>dtaShaped1</td><td class=CDLDescription>Shaped 1</td></tr><tr><td class=CDLEntry><a name="dtaShaped2"></a>dtaShaped2</td><td class=CDLDescription>Shaped 2</td></tr></table></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TDitherer"></a>TDitherer</h2><div class=CBody><p>A descendent of <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link20 onMouseOver="ShowTip(event, 'tt1', 'link20')" onMouseOut="HideTip('tt1')">TAuConverter</a> which converter adds dithering noise to the audio data passing through it.&nbsp; Dithering is useful when performing audio sample truncation (with <a href="#TAudioConverter" class=LClass id=link21 onMouseOver="ShowTip(event, 'tt7', 'link21')" onMouseOut="HideTip('tt7')">TAudioConverter</a> for example) and other DSP operatins that involve rounding.&nbsp; TDitherer uses several dithering algorithms, but none of them is perfect.&nbsp; I would be grateful for any dithering algorithms additions.&nbsp; If you want to use TDitherer together with <a href="#TAudioConverter" class=LClass id=link22 onMouseOver="ShowTip(event, 'tt7', 'link22')" onMouseOut="HideTip('tt7')">TAudioConverter</a> you should place it before <a href="#TAudioConverter" class=LClass id=link23 onMouseOver="ShowTip(event, 'tt7', 'link23')" onMouseOut="HideTip('tt7')">TAudioConverter</a> in the audio processing chain.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TDitherer.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TDitherer.DitheringDepth" >DitheringDepth</a></td><td class=SDescription>Use this property to set the number of bits that will contain the dithering noise. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TDitherer.DitheringAlgorithm" >DitheringAlgorithm</a></td><td class=SDescription>Use this property to set the dithering algorithm. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TDitherer.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TDitherer.DitheringDepth"></a>DitheringDepth</h3><div class=CBody><p>Use this property to set the number of bits that will contain the dithering noise.&nbsp; For example, if you want to truncate audio samples from 24 bits per sample to 16 bits, set this value to 8.&nbsp; If the DitheringDepth value is set to 0 (the default  value), the component switches to pass- through mode in which audio data will be passed through unmodified.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TDitherer.DitheringAlgorithm"></a>DitheringAlgorithm</h3><div class=CBody><p>Use this property to set the dithering algorithm.&nbsp; Possible values are <a href="#dtaRectangular" class=LConstant id=link24 onMouseOver="ShowTip(event, 'tt8', 'link24')" onMouseOut="HideTip('tt8')">dtaRectangular</a>, <a href="#dtaTriangular" class=LConstant id=link25 onMouseOver="ShowTip(event, 'tt9', 'link25')" onMouseOut="HideTip('tt9')">dtaTriangular</a>, <a href="#dtaShaped1" class=LConstant id=link26 onMouseOver="ShowTip(event, 'tt10', 'link26')" onMouseOut="HideTip('tt10')">dtaShaped1</a>, and <a href="#dtaShaped2" class=LConstant id=link27 onMouseOver="ShowTip(event, 'tt11', 'link27')" onMouseOut="HideTip('tt11')">dtaShaped2</a>.&nbsp; See &lt;TDitheringAlgorithm&gt; for more.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TFastResampler"></a>TFastResampler</h2><div class=CBody><p>This resampler combines fast resampling speed and good quality.&nbsp; Descends from <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link28 onMouseOver="ShowTip(event, 'tt1', 'link28')" onMouseOut="HideTip('tt1')">TAuConverter</a>.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TFastResampler.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TFastResampler.OutSampleRate" >OutSampleRate</a></td><td class=SDescription>Use this property to set the resampler&rsquo;s output sample rate.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TFastResampler.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TFastResampler.OutSampleRate"></a>OutSampleRate</h3><div class=CBody><p>Use this property to set the resampler&rsquo;s output sample rate.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAudioConverter"></a>TAudioConverter</h2><div class=CBody><p>A descendent of <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link29 onMouseOver="ShowTip(event, 'tt1', 'link29')" onMouseOut="HideTip('tt1')">TAuConverter</a> which may be used for changing the number of channels and number of bits per sample in an audio stream.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TAudioConverter.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAudioConverter.Mode" >Mode</a></td><td class=SDescription>Mode property affects the way the mono stream is converted into stereo. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TAudioConverter.OutBitsPerSample" >OutBitsPerSample</a></td><td class=SDescription>Use this property to set the number of bits per sample in the resulting audio stream. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TAudioConverter.OutChannels" >OutChannels</a></td><td class=SDescription>Use this property to set the number of channels in the resulting audio stream. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TAudioConverter.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioConverter.Mode"></a>Mode</h3><div class=CBody><p>Mode property affects the way the mono stream is converted into stereo.&nbsp; If mode is msmMonoToBoth (which is the default) the data from the mono channel is copied into both stereo channels.&nbsp; If the mode is msmMonoToLeft or msmMonoToRight the data from the mono channel is put to one of the stereo channels while the other channel plays silence.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioConverter.OutBitsPerSample"></a>OutBitsPerSample</h3><div class=CBody><p>Use this property to set the number of bits per sample in the resulting audio stream.&nbsp; The valid values are 0, 8, 16, 24, and 32.&nbsp; If the property is set to 0 (the default) the converter preserves the original stream&rsquo;s number of bits per sample.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TAudioConverter.OutChannels"></a>OutChannels</h3><div class=CBody><p>Use this property to set the number of channels in the resulting audio stream.&nbsp; The valid values are 0,  1 (mono), and 2 (stereo).&nbsp; If the property is set to 0 (the default value) the converter preserves the original stream&rsquo;s number of channels.&nbsp; If the number of input channels is greater than 2 the component cannot change it.&nbsp; Only number of bits per sample can be changed in this case.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TACMConverter"></a>TACMConverter</h2><div class=CBody><p>Descends from <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link30 onMouseOver="ShowTip(event, 'tt1', 'link30')" onMouseOut="HideTip('tt1')">TAuConverter</a>, an ACM-based converter.&nbsp; It may be used for changing the number of channels and number of bits per sample in an audio stream and resampling audio (at low quality).&nbsp; Unlike <a href="#TAudioConverter" class=LClass id=link31 onMouseOver="ShowTip(event, 'tt7', 'link31')" onMouseOut="HideTip('tt7')">TAudioConverter</a>, TACMConverter doesn&rsquo;t work with 24 bps audio streams.</p><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TACMConverter.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TACMConverter.OutBitsPerSample" >OutBitsPerSample</a></td><td class=SDescription>Use this property to set the number of bits per sample in the resulting audio stream. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TACMConverter.OutChannels" >OutChannels</a></td><td class=SDescription>Use this property to set the number of channels in the resulting audio stream. </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TACMConverter.OutSampleRate" >OutSampleRate</a></td><td class=SDescription>Use this property to set thesample rate of the resulting audio stream. </td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TACMConverter.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TACMConverter.OutBitsPerSample"></a>OutBitsPerSample</h3><div class=CBody><p>Use this property to set the number of bits per sample in the resulting audio stream.&nbsp; The valid values are 0, 8, 16.&nbsp; If the property is set to 0 (the default) the converter preserves the original stream&rsquo;s number of bits per sample.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TACMConverter.OutChannels"></a>OutChannels</h3><div class=CBody><p>Use this property to set the number of channels in the resulting audio stream.&nbsp; The valid values are 0, 1 (mono), and 2 (stereo).&nbsp; If the property is set to 0 (the default value) the converter preserves the original stream&rsquo;s number of channels.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TACMConverter.OutSampleRate"></a>OutSampleRate</h3><div class=CBody><p>Use this property to set thesample rate of the resulting audio stream.&nbsp; The valid values are 0 and something between 2000-12000.&nbsp; If the property is set to 0 (the default value) the converter preserves the original stream&rsquo;s sample rate.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TDownMixer"></a>TDownMixer</h2><div class=CBody><p>TDownMixer converts multi-channel (currently only 5.1) audio to stereo.&nbsp; Descends from <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link32 onMouseOver="ShowTip(event, 'tt1', 'link32')" onMouseOut="HideTip('tt1')">TAuConverter</a>.&nbsp; The stereo channel data are calculated as follows:</p><blockquote><pre>if JoinRear = False then
Left = FrontLeft + RearLeft*RearGain + Central*CentralGain
Right = FrontRight + RearRight*RearGain + Central*CentralGain</pre></blockquote><blockquote><pre>if JoinRear = True then
Left = FrontLeft + (RearLeft + RearRight)*RearGain + Central*CentralGain
Right = FrontRight - (RearLeft + RearRight)*RearGain + Central*CentralGain</pre></blockquote><!--START_ND_SUMMARY--><div class=Summary><div class=STitle>Summary</div><div class=SBorder><table border=0 cellspacing=0 cellpadding=0 class=STable><tr class="SGroup"><td class=SEntry><a href="#TDownMixer.Properties" >Properties</a></td><td class=SDescription></td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TDownMixer.CentralGain" >CentralGain</a></td><td class=SDescription>CentralGain value (see the formulae above) reasonable values range from 0.5 to 0.7. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TDownMixer.RearGain" >RearGain</a></td><td class=SDescription>RearGain value (see the formulae above). </td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TDownMixer.TotalGain" >TotalGain</a></td><td class=SDescription>The total output gain value. </td></tr><tr class="SProperty SIndent1"><td class=SEntry><a href="#TDownMixer.JoinRear" >JoinRear</a></td><td class=SDescription>When set to True the component tries to emulate Dolby Surround Stereo.</td></tr><tr class="SProperty SIndent1 SMarked"><td class=SEntry><a href="#TDownMixer.OnClipping" >OnClipping</a></td><td class=SDescription>OnCliping event is raised whenever clipping occurs.</td></tr></table></div></div><!--END_ND_SUMMARY--></div></div></div>

<div class="CGroup"><div class=CTopic><h3 class=CTitle><a name="TDownMixer.Properties"></a>Properties</h3></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TDownMixer.CentralGain"></a>CentralGain</h3><div class=CBody><p>CentralGain value (see the formulae above) reasonable values range from 0.5 to 0.7.&nbsp; If this this value is too large, clipping may occur</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TDownMixer.RearGain"></a>RearGain</h3><div class=CBody><p>RearGain value (see the formulae above).&nbsp; Reasonable values range from 0.5 to 0.7.&nbsp; If this this value is too large, clipping may occur.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TDownMixer.TotalGain"></a>TotalGain</h3><div class=CBody><p>The total output gain value.&nbsp; Reasonable values range from 0.5 to 1.0.&nbsp; Decrease this value to prevent clipping.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TDownMixer.JoinRear"></a>JoinRear</h3><div class=CBody><p>When set to True the component tries to emulate Dolby Surround Stereo.</p></div></div></div>

<div class="CProperty"><div class=CTopic><h3 class=CTitle><a name="TDownMixer.OnClipping"></a>OnClipping</h3><div class=CBody><p>OnCliping event is raised whenever clipping occurs.</p></div></div></div>

<div class="CClass"><div class=CTopic><h2 class=CTitle><a name="TAudioCache"></a>TAudioCache</h2><div class=CBody><p>TAudioCache is a converter component that caches what it gets on input to provide the smooth output.&nbsp; Audio Player demo uses TAudioCache btween the spectrum indicator and audio output and the file reading components.&nbsp; Descends from <a href="ACS_Classes-pas.html#TAuConverter" class=LClass id=link33 onMouseOver="ShowTip(event, 'tt1', 'link33')" onMouseOut="HideTip('tt1')">TAuConverter</a>.</p></div></div></div>

</div><!--Content-->


<div id=Footer>Content &copy; 2008-2010 Andrei Borovsky. Design &copy; 2008 Wayne Thursby. <b><u><a href="http://symmetrica.net/newac">Go to the project's main page</a></u></b>&nbsp; &middot;&nbsp; <a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->


<div id=Menu><div class=MTitle>NewAC<div class=MSubTitle>v2.6.1</div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Documentation</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../doc/txt/introduction-txt.html">Quick Introduction to NewAC</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/about_documentation-txt.html">About the Documentation</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/cwguide-txt.html">Component Writer&rsquo;s Guide</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/license-txt.html">License</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/tips_and_tricks-txt.html">Tips &amp; Tricks</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/newac-txt.html">About New Audio Components</a></div></div><div class=MEntry><div class=MFile><a href="../doc/txt/features-txt.html">NewAC Main Features List</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Main Units</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="ACS_AudioMix-pas.html">ACS_AudioMix</a></div></div><div class=MEntry><div class=MFile><a href="ACS_CDROM-pas.html">ACS_CDROM</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Classes-pas.html">ACS_Classes</a></div></div><div class=MEntry><div class=MFile id=MSelected>ACS_Converters</div></div><div class=MEntry><div class=MFile><a href="ACS_DXAudio-pas.html">ACS_DXAudio</a></div></div><div class=MEntry><div class=MFile><a href="ACS_FLAC-pas.html">ACS_FLAC</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Filters-pas.html">ACS_Filters</a></div></div><div class=MEntry><div class=MFile><a href="ACS_LAME-pas.html">ACS_LAME</a></div></div><div class=MEntry><div class=MFile><a href="ACS_MAC-pas.html">ACS_MAC</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Misc-pas.html">ACS_Misc</a></div></div><div class=MEntry><div class=MFile><a href="ACS_MPC-pas.html">ACS_MPC</a></div></div><div class=MEntry><div class=MFile><a href="ACS_OptimFROG-pas.html">ACS_OptimFROG</a></div></div><div class=MEntry><div class=MFile><a href="ACS_smpeg-pas.html">ACS_SMPEG</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Streams-pas.html">ACS_Streams</a></div></div><div class=MEntry><div class=MFile><a href="ACS_TTA-pas.html">ACS_TTA</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Tags-pas.html">ACS_Tags</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Vorbis-pas.html">ACS_Vorbis</a></div></div><div class=MEntry><div class=MFile><a href="ACS_WavPack-pas.html">ACS_WavPack</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Wave-pas.html">ACS_Wave</a></div></div><div class=MEntry><div class=MFile><a href="ACS_WinMedia-pas.html">ACS_WinMedia</a></div></div><div class=MEntry><div class=MFile><a href="ACS_AAC-pas.html">ACS_AAC</a></div></div><div class=MEntry><div class=MFile><a href="AudioDMO-pas.html">AudioDMO</a></div></div><div class=MEntry><div class=MFile><a href="AudioPass-pas.html">AudioPass</a></div></div><div class=MEntry><div class=MFile><a href="AuSampleRate-pas.html">AuSampleRate</a></div></div><div class=MEntry><div class=MFile><a href="AuASIO-pas.html">AuASIO</a></div></div><div class=MEntry><div class=MFile><a href="AuSynch-pas.html">AuSynch</a></div></div><div class=MEntry><div class=MFile><a href="NewACDTS-pas.html">NewACDTS</a></div></div><div class=MEntry><div class=MFile><a href="NewAC_AVI-pas.html">NewAC_AVI</a></div></div><div class=MEntry><div class=MFile><a href="NewAC_DSP-pas.html">NewAC_DSP</a></div></div><div class=MEntry><div class=MFile><a href="NewACAC3-pas.html">NewACAC3</a></div></div><div class=MEntry><div class=MFile><a href="NewACIndicators-pas.html">NewACIndicators</a></div></div><div class=MEntry><div class=MFile><a href="NewACDSAudio-pas.html">NewACDSAudio</a></div></div><div class=MEntry><div class=MFile><a href="ACS_AAC-pas.html">ACS_AAC</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Utility Units</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MFile><a href="ACS_Misc-pas.html">ACS_Misc</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Procs-pas.html">ACS_Procs</a></div></div><div class=MEntry><div class=MFile><a href="acs_reg-pas.html">ACS_Reg</a></div></div><div class=MEntry><div class=MFile><a href="ACS_Types-pas.html">ACS_Types</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent4')">Tutorials</a><div class=MGroupContent id=MGroupContent4><div class=MEntry><div class=MFile><a href="../demos/Tutorial/AudioProcessor/Main-pas.html">Audio Processor</a></div></div><div class=MEntry><div class=MFile><a href="../demos/Tutorial/ComponentsDemo/ComponentsDemo-pas.html">Components Demo</a></div></div><div class=MEntry><div class=MFile><a href="../demos/Recorders-rippers/Rip'n'listen/Main-pas.html">Rip&rsquo;n&rsquo;Listen Demo</a></div></div></div></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/Test_ACS_MAC-pas.html">ACS_MAC TestCases</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/Test_ACS_WavPack-pas.html">ACS_WavPack TestCases</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/Test_ACS_FLAC-pas.html">TestFLACEncode</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/uLog-pas.html">uLog.pas</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/uTestBase-pas.html">uTestBase</a></div></div><div class=MEntry><div class=MFile><a href="../dunit/dunit/uUtility-pas.html">uUtility</a></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent5')">Index</a><div class=MGroupContent id=MGroupContent5><div class=MEntry><div class=MIndex><a href="../../index/General.html">Everything</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Classes.html">Classes</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Constants.html">Constants</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Functions.html">Functions</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Properties.html">Properties</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Types.html">Types</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Variables.html">Variables</a></div></div><div class=MEntry><div class=MIndex><a href="../../index/Files.html">Files</a></div></div></div></div></div><script type="text/javascript"><!--
var searchPanel = new SearchPanel("searchPanel", "HTML", "../../search");
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option  id=MSearchEverything selected value="General">Everything</option><option value="Classes">Classes</option><option value="Constants">Constants</option><option value="Files">Files</option><option value="Functions">Functions</option><option value="Properties">Properties</option><option value="Types">Types</option><option value="Variables">Variables</option></select></div><script language=JavaScript><!--
HideAllBut([2], 6);// --></script></div><!--Menu-->



<!--START_ND_TOOLTIPS-->
<div class=CToolTip id="tt1"><div class=CClass>Descends from TAuInput, the base class for all converter components. </div></div><div class=CToolTip id="tt2"><div class=CConstant>the intermediate data is stored in a disc file (see the &lt;TmpFileName&gt; property).</div></div><div class=CToolTip id="tt3"><div class=CConstant>the intermediate data is stored in RAM.</div></div><div class=CToolTip id="tt4"><div class=CConstant>no intermediate data is stored. </div></div><div class=CToolTip id="tt5"><div class=CClass>A descendant of TAuInput to deal with streams.</div></div><div class=CToolTip id="tt6"><div class=CType>Used by TNormalizer to differentiate between three different methods to store intermediate data.</div></div><div class=CToolTip id="tt7"><div class=CClass>A descendent of TAuConverter which may be used for changing the number of channels and number of bits per sample in an audio stream.</div></div><div class=CToolTip id="tt8"><div class=CConstant>Rectangle noise</div></div><div class=CToolTip id="tt9"><div class=CConstant>Triangle noise</div></div><div class=CToolTip id="tt10"><div class=CConstant>Shaped 1</div></div><div class=CToolTip id="tt11"><div class=CConstant>Shaped 2</div></div><!--END_ND_TOOLTIPS-->




<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>


<script language=JavaScript><!--
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>